Speech processing is increasingly being incorporated into a variety of consumer devices, including personal computers, cell phones, personal data assistants, etc. Speech processing is typically realized in one of two approaches: speech processing is performed on the consumer device or it is distributed between the consumer device and a server. The problem with these two approaches is that they address only the computational aspect of speech processing. Currently, there is a lack of an intermediary that would enable sharing of user models and other user-specific preferences. As a result, training sessions and other initialization procedures need to be repeatedly performed by users on their different devices. In other words, current speech processing architectures do not support sharing of users' customization data amongst speech applications residing on different consumer devices.